{{tag>TAGS}}

====== Extlinux : Live-Usb sur une partition Ext2/Ext3/Ext4 =====

**Extlinux transforme la clef Usb Ext2, Ext3, Ext4 en Usb-Live**

**Extlinux** est un paquet développé par H. Peter Anvin [[http://www.syslinux.org/wiki/index.php/EXTLINUX| EXTLINUX]]

Il fait parti du projet [[http://www.syslinux.org|Syslinux]].

<note>Cette documentation est là pour mieux comprendre l'utilité et le fonctionnement d'extlinux </note>
 [[:unetbootin | Unetbootin]] permet d'automatiser ses tâches mais pas toujours de façon satisfaisante.

En mars 2013 il n'est plus capable de rendre unepartition ext3 bootable ce qu'il parvenait à faire auparavant

<note important>Cette manipulation est réservé au **Disque Dut Externe USB**. 

Elle est déconseillée sur un __Disque dur interne__ : elle peut en corrompre le démarrage . </note>

=====Installer extlinux=====
[[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>extlinux,syslinux-common |extlinux syslinux-common]]**

=====Préparation du DD Externe ou d'une Clef USB=====
Il est recommandé de partitionner son disque si ce n'est pas déjà fait.

Méthode graphique: [[gparted|gparted]]

Méthode en ligne de commande:[[fdisk|FDISK]] [[http://tldp.org/HOWTO/Partition/fdisk_partitioning.html]]

Tuto Ubuntu [[tutoriel:partitionner_manuellement_avec_installateur_ubuntu|Installation d'Ubuntu : partitionnement manuel]]



=====Mettre le LiveCd sur USB Cible EXT =====
[[tutoriel:grub2_lancer_des_images_iso|Références de distributions GNU/Linux bootables (page grub2 iso)]]

**Monter l'ISO obtenue dans le répertoire /tmp/cdrom :**
<file>user@grUser-P5Q-E:~$ mkdir -p /tmp/cdrom
user@grUser-P5Q-E:~$ mount -o loop,exec /path/to/systemrescuecd-x86-x.y.z.iso /tmp/cdrom
</file>

**Monter la partition dans un répertoire :**
<file>
user@grUser-P5Q-E:~$ mkdir /tmp/disk
user@grUser-P5Q-E:~$ sudo mount /dev/sde1/ /tmp/disk
</file>

**Copier le contenu du LiveCd dans la partition cible :**
<file>
user@grUser-P5Q-E:~$ sudo cp -Rf /tmp/cdrom  /tmp/disk
</file>
=====Installation du chargeur de démarrage=====
==== Rendre la partition Disque bootable ====
=== copier MBR extlinux sur celui de la partition Ext ===
<file>user@grUser-P5Q-E:~$ sudo dd if=/usr/lib/extlinux/mbr.bin of=/dev/sde1</file>
==== Installer extlinux sur le disque cible ====
== Installer EXTLINUX dans le répertoire ou sera configurer le menu de boot ==
<file>
user@grUser-P5Q-E:~$ sudo extlinux -i  /tmp/disk/isolinux
user@grUser-P5Q-E:~$ sudo cp /usr/lib/syslinux/chain.c32 /tmp/disk/isolinux
</file>

Si le répertoire ** /tmp/disk/isolinux ** contient le fichier __ldlinux.sys__ :  **tout c'est bien passé !!! **


=====Mettre un drapeau "boot" d'amorce sur la partition Cible=====
====Vérification des drapeaux :====
<code>sudo fdisk -l /dev/sdx</code>
Dans la réponse, se sont les lignes suivantes qui nous intéressent : 
<code>
Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdx1           2048    18202623     9100288   83  Linux
/dev/sdx2        18202624    71102463    26449920   83  Linux
/dev/sdx3        71103751   625141759   277019004+   5  Étendue
/dev/sdx5        71103753   619000514   273948381    b  W95 FAT32
</code>

**Si aucune *  astérisque n’apparaît alors aucune des partitions ne contient de drapeau de boot .**

====Ajouter un drapeau de boot ====
=== Fdisk ===
<code>user@grUser-P5Q-E:~$ -P5Q-E:~$ sudo fdisk /dev/sde</code>
**Entrer commande a ** 

la machine demande le numéro de partition à marque comme bootable:
<code>Numéro de partition (1-5): 1</code>
**Entrer commande w (pour finaliser) l'écriture sur le disque**


=== gparted (méthode graphique alternative)===

** Lancer ** [[:gparted |Gparted]]

Sélectionner la clef ou le DDExterne 
Dans le menu se rendre à **Partitions** > **Gérer les drapeaux**. 

**__Cocher la case en face de boot, comme l'image suivante nous le montre, puis refermer__**
{{ :drapeaux-gparted.png?800 |}}





=====Configurer le menu de démarrage extlinux.conf du Live-USB=====
===Conditions démarrage d'extlinux : ===
   -  Le répertoire de démarrage doit comporter: 
   - Un menu de démarrage : //**extlinux.conf**//  
   - Un fichier //**vesamenu.c32**//
==Si c'est conditions ne sont pas respectée votre LIve-Usb ne démarrera pas ! ==



====Exemples de menu extlinux.conf====

=== Menu d'un Live-Usb personnalisé ===
 obtenu à partir d'une ISO [[http://doc.ubuntu-fr.org/remastersys | Remastersys]] clone de mon système ubuntu 12.04 LTS precise)
<note>L'option "persistent" dans le menu suivant permet au Live-USB de démarrer un fichier ou une partition nommée "casper-rw" fichier/partition de persistance</note>
<code>default vesamenu.c32
prompt 0
timeout 100

menu title 2012maiUbuntu12.04
menu background splash.png
menu color title 1;37;44 #c0ffffff #00000000 std

label persistent
  menu label persistent - boot the Live System in Persistent Mode
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz persistent quiet splash --

label live
  menu label live - boot the Live System
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz quiet splash --

label xforcevesa
  menu label xforcevesa - boot Live in safe graphics mode
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/custom.seed boot=casper xforcevesa initrd=/casper/initrd.gz quiet splash --

label install
  menu label install - start the installer directly
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/custom.seed boot=casper only-ubiquity initrd=/casper/initrd.gz quiet splash --

label memtest
  menu label memtest - Run memtest
  kernel /install/memtest
  append -

label hd
  menu label hd - boot the first hard disk
  localboot 0x80
  append -
</code>

====Pour démarrer Windows, depuis le Live-USB====
Copier **chain.c32** dans le répertoire de démarrage :
<code> sudo cp /usr/lib/syslinux/chain.c32 /media/usbdisk/isolinux/</code>
Editer le menu extlinux.conf et lui ajouter les lignes suivantes : 
<code>label Windows
 menu label windows -démarrer windows depuis le live-Usb
 kernel chain.c32
 append sda1</code>


=====Personnaliser l'image de fond du menu de démarrage=====
//Vesamenu.c32// extlinux permet d'afficher de jolies images au format **JPG** ou **PNG** au démarrage d'extlinux. 
Il est conseillé de commencer par une résolution 640x480. (Attention: JPG progressif n'est pas pris en charge par **extlinux**)

Une fois que vous avez votre image, copiez-la dans le répertoire du menu de démarrage (**/media/usbdisk/isolinux/**) boot / extlinux / et  nommer la ** splash.png ** ou **splash.jpg**.

=====Démarrer le LIve-USB et tester=====
Il est nécessaire de savoir si son BIOS permet de démarrer des LIve-USB: 
- (Si le BIOS de l'ordi ne le permet pas, il est possible de graver une ISO qui le permet depuis le CD/DVD rom [[http://doc.ubuntu-fr.org/cd_boot_usb#methode_1avec_plop_boot_manager | PLoP]] ).
- Sinon sélectionner le bon média de démarrage avec le BIOS au moment du boot de la machine.

=====Conclusion=====
Extlinux permet de créer un Live-USB.

Unetbootin permet de le faire plus rapidement et automatiquement.

[[:multisystem | multisystème]] (anciennement multiboot) permet aussi de créer un LIve-USB mais basé sur le grub (moins rapide au démarrage) et des partitions fat32 (c'est très bien fat32 montable sur tous les systèmes qu'il soit nécessaire de lui donner les droits pour qu'il soit possible d'y écrire ou d'y lire, la seule limitation c'est pour les fichiers de plus de 4.3 Go. Fat32 peut donner aussi des partitions nécessitant une défragmentation).

=====Voir aussi=====
En anglais:    
  -   [[http://shallowsky.com/linux/extlinux.html | Documentation Source]]   
  -  Forum Ubuntu : [[http://ubuntuforums.org/showthread.php?t=740924 | Reload this Page Howto Boot Ubuntu From Live USB using extlinux Bootloader]]
  - [[:unetbootin | Unetbootin qui permet d'automatiser ses opérations (à sa façon !!! )]]
En français:
  -  [[:live_usb | diverses méthodes pour créer un Live-USB]]
  - [[:usb-creator | usb-creator]] (pour les partitions en fat32)